/*
 * 文件名：RoleInfoDaoImp.java
 * 版权：Copyright by www.wootide.com
 * 描述：
 * 修改人：ozm
 * 修改时间：2013-1-24
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package com.wootide.ets.sys.role.dao.imp;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.wootide.ets.log.syslog.RunLog;
import com.wootide.ets.sys.rightinfo.pojo.AuthoritiesInfo;
import com.wootide.ets.sys.role.dao.RoleInfoDao;
import com.wootide.ets.sys.role.pojo.RoleInfo;

public class RoleInfoDaoImp extends HibernateDaoSupport  implements RoleInfoDao
{

    /**
     * 日志记录
     */
    private RunLog runLog;

    public RunLog getRunLog()
    {
        return runLog;
    }

    public void setRunLog(RunLog runLog)
    {
        this.runLog = runLog;
    }
    
    @SuppressWarnings("unchecked")
    public List<AuthoritiesInfo> findAuthoritiesInfosByRoleId(Integer roleId)
    {
        return getHibernateTemplate().find("select ra.authoritiesInfo from RoleAuthoritiesInfo ra where ra.roleInfo.roleId = ?", roleId);
    }
    
    @SuppressWarnings("unchecked")
    public List<RoleInfo> findAllRoles()
    {
        return getHibernateTemplate().findByNamedQuery("findAllRoles");
    }

    /**
     * 通过角色名称获取角色信息
     * Description: <br>
     * Implement: <br>
     * @param roleName 指定的角色名
     * @see
     * @return RoleInfo 根据角色名查询到的角色信息
     * @author ozm
     */
    public RoleInfo findOneRoleByName(String roleName)
    {
        
        return null;
    }

    /**
     * 
     * Description: 查询指定角色名的角色信息数
     * Implement: <br>
     * @param roleName 指定的角色名
     * @see
     * @return int  记录数
     * @author ozm2013-1-29下午4:49:21
     */
    public int findNumByRoleName(String roleName)
    {
        runLog.debug("roleName=" + roleName);
        
        return ((Number)getHibernateTemplate().findByNamedQuery("findRoleNumByName",
                roleName).get(0)).intValue();
    }

    /**
     * 
     * Description: 通过用户ID获取角色信息
     * Implement: <br>
     * @param roleId 角色ID
     * @see
     * @return RoleInfo 要获取的角色信息
     * @author ozm2013-1-30上午10:21:23
     */
    public RoleInfo findOneRoleByRoleId(Integer roleId)
    {
        runLog.debug("roleId=" + roleId);
        return this.getHibernateTemplate().get(RoleInfo.class, roleId);
    }
    
}
